/*
 * Ingenieria de Sistemas II - 1C2009
 * Marzo/2009
 * 
 * Ejercicio 14 - Persistencia simple (servidor)
 *  
 */

package ejemploejb;

import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;

import javax.annotation.PostConstruct;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.hibernate.mapping.Collection;

import entidades.Cliente;
import entidades.Compra;
import entidades.CompraItem;
import entidades.Cotizacion;
import entidades.CotizacionItem;
import entidades.CuentaCorriente;
import entidades.Rodamiento;
import utils.ProductoVO;

/**
 * Bean Stateful que administra productos
 *
 */
@Stateful
public  class AdministradorProductosBean implements AdministradorProductos {

	@PersistenceContext(unitName="AdministradorProductos")
	private EntityManager manager; 
	
	Cliente[] listaClientes;
	
	public void crearCliente() {
		
		Cliente c=new Cliente();
		c.setCuentaCorriente(new CuentaCorriente());
		c.setNombreCliente("Carlos");
		c.setCondVenta("IVA INSCRIPTO");
		c.setTipoCliente("Empresa");
		c.setId(1);
		c.getCuentaCorriente().setSaldoactual(0);
		c.getCuentaCorriente().setNrocuenta(1);
		c.getCuentaCorriente().setCliente(c);
		//manager.persist(c.getCuentaCorriente());
		manager.persist(c);
		
	}
	
	public void modificarCliente(){
		Cliente c=new Cliente();
		c.setCuentaCorriente(new CuentaCorriente());
		c.setNombreCliente("Carlos");
		c.setCondVenta("IVA INSCRIPTO");
		c.setTipoCliente("Persona");
		c.setId(1);
		c.getCuentaCorriente().setSaldoactual(200);
		c.getCuentaCorriente().setNrocuenta(1);
		c.getCuentaCorriente().setCliente(c);
		
		manager.merge(c);
	}
	
	public void eliminarCliente(){
		Cliente c=new Cliente();
		c.setCuentaCorriente(new CuentaCorriente());
		c.setNombreCliente("Carlos");
		c.setCondVenta("IVA INSCRIPTO");
		c.setTipoCliente("Persona");
		c.setId(1);
		c.getCuentaCorriente().setSaldoactual(200);
		c.getCuentaCorriente().setNrocuenta(1);
		c.getCuentaCorriente().setCliente(c);
		
		
		manager.remove(manager.find(Cliente.class, c.getId()));
	}
	
	public void guardarCotizacion(){
		Cotizacion c= new Cotizacion();
		c.setEstadoCotizacion("aprobado");
		c.setFechaRecepcion(new Date());
		c.setFechaValidez(new Date(5));
		
		CotizacionItem i=new CotizacionItem();
		i.setCant(2);
		i.setNroCotizationItem(1);
		i.setTiempoEntrega(30);
		
		Rodamiento r=new Rodamiento();
		r.setMarca("toyota");
		r.setPais("Argentina");
		r.setPrecio(20);
		r.setSKF("1010123012301");
		
		i.setRodamiento(r);
		i.setCotizacion(c);
		
		c.setItemsCotizacion(new ArrayList <CotizacionItem>());
		c.getItemsCotizacion().add(i);
		
		manager.persist(c);
	}
	
	public void guardarCompra(){
		Compra c= new Compra();
		c.setFechaCompra(new Date());
		
		CompraItem i=new CompraItem();
		i.setCantidad(2);
		/*i
		i.setTiempoEntrega(30);
		
		Rodamiento r=new Rodamiento();
		r.setMarca("toyota");
		r.setPais("Argentina");
		r.setPrecio(20);
		r.setSKF("1010123012301");
		
		i.setRodamiento(r);
		i.setCotizacion(c);
		
		c.setItemsCotizacion(new ArrayList <CotizacionItem>());
		c.getItemsCotizacion().add(i);
		
		manager.persist(c);*/
	}

	

	public void getListaClientes() {
		Query query=manager.createQuery("select c FROM Cliente c");
		Cliente c=(Cliente)query.getResultList().iterator().next();
		System.out.println(c.getNombreCliente());
	}
}
